import re
import pandas as pd

# 读取文本文件内容
with open('C:\\Users\\Rusz\\Downloads\\百科全书目录-索引.txt', 'r', encoding='utf-8', errors='ignore') as f:
    lines = f.readlines()

# 正则表达式模式：匹配标题和页码（支持多种分隔符和空格）
# 正则表达式：匹配标题和页码（支持 -、—、空格等分隔符，确保页码为纯数字）
pattern = re.compile(
    r'^(?P<title>.*?)\s*[—-]\s*(?P<page>\d+)$',
    re.IGNORECASE | re.DOTALL
)

data = []
current_title = []

for line in lines:
    line = line.strip()  # 去除首尾空白字符
    
    if not line:
        continue  # 跳过空行
    
    # 尝试匹配当前行
    match = pattern.match(line)
    
    if match:
        # 提取标题和页码
        title = ' '.join(current_title + [match.group(1).strip()])
        page = match.group(2)
        data.append((title, page))
        current_title = []  # 重置当前标题
    else:
        # 未匹配则作为标题的一部分（处理跨多行的标题）
        current_title.append(line)

# 处理最后一个未匹配的标题（如果有）
if current_title:
    data.append((' '.join(current_title).strip(), ''))  # 页码留空或根据需求处理

# 创建DataFrame并保存为Excel
df = pd.DataFrame(data, columns=['标题', '页码'])
df.to_excel('C:\\Users\\Rusz\\Downloads\\百科全书目录-索引.xlsx', index=False)

print("转换完成！Excel文件已生成。")